(function () {
  //为了不用起名字 放到数组里面 数组里面的每一项都是匿名的模块
  var moduleList = [
    //index.js
    function (require, module, exports) {
      const moduleA = require("./moduleA");
      console.log("moduleA", moduleA);
      console.log("hello bundler");
      module.exports = "hello world";
    },
    // moduleA.js
    function (require, module, exports) {
      module.exports = new Date().toLocaleTimeString();
    },
  ];

  var moduleDepIdList = [{ "./moduleA": 1 }, {}];

  function require(id, parentId) {
    var currentModuleId =
      parentId !== undefined ? moduleDepIdList[parentId][id] : id;

    var module = { exports: {} };
    var moduleFunc = moduleList[currentModuleId];
    moduleFunc((id) => require(id, currentModuleId), module, module.exports);
    return module.exports;
  }

  require(0);

  // 第一次 id 0
  // currentModuleId 0
  // moduleFunc = moduleList[0]
  // function((id) => require(id, 0),module, module.exports)

  // require("./moduleA",0);
  // currentModuleId = moduleDepIdList[0]["./moduleA"] === 1
  // moduleFunc = moduleList[1]
  // function((id) => require(id, 1),module, module.exports)
})();
